In [3]:
import numpy
from IPython import parallel
c = parallel.Client()
d = c[:]
d.block = True
with d.sync_imports():
from random import random
from math import pi
In [26]:
def mcpi (n):
s = 0
for i in xrange(n):
x = random()
y = random()
if x * x + y * y <= 1:
s += 1
return 4. * s / n
%timeit pi = mcpi(1000000)
pi
Out[26]:
In [25]:
def mcpi (n):
s = 0
for i in xrange(n):
x = random()
y = random()
if x * x + y * y <= 1:
s += 1
return s
d['mcpi'] = mcpi
def multi_mcpi (n):
k = len(d.targets)
return 4. * sum(d.map(mcpi, [n / k] * k)) / n
%timeit pi = multi_mcpi(1000000)
pi
Out[25]: